import Mock from 'mockjs'
import { phone } from './../../extend'
const newList = Mock.mock({
  'data|1-10': [
    {
      id: '@id', //随机生成id
      name: '@cname', //随机生成中文名字,
      status: '@integer(0,1)',
      phoneNumber: phone,
      'age|18-60': 1, //随机生成18-60的数字
      'sex|1-2': 1, //随机生成1-2的数字
      'salary|1000-10000': 1, //随机生成1000-10000的数字
      birthday: '@date', //随机生成日期
      time: '@time', //随机生成时间
      content: '@cparagraph', //随机生成中文段落
      img: "@image('200x100', '#50B347', '#FFF', 'png', 'Mock.js')", //随机生成图片
      address: '@county(true)', //随机生成地址
      email: '@email', //随机生成邮箱
      ip: '@ip', //随机生成ip
      url: '@url' //随机生成url
    }
  ]
})

//获取列表
Mock.mock(RegExp(`${import.meta.env.VITE_APP_REQUSET_URL}/api/system/list.*`), 'get', (request) => {
  //与拦截GET请求类似，不同点在于请求参数的获取，POST拦截可以直接通过参数对象.body获取
  //假如传递的参数是 form 形式
  //let data = Object.fromEntries(new URLSearchParams(body).entries()
  // 根据 request.url 获取请求地址，然后利用URL参数对象提取参数
  const { page = 1, pagesize = 10 } = Object.fromEntries(
    new URL(request.url).searchParams.entries()
  )
  const total = Math.ceil(newList.data.length / Number(pagesize))
  // 获取总页数
  const totalPage = Number(total) > Number(pagesize) ? total : pagesize
  return {
    code: 200,
    page: page,
    data: newList.data,
    totalPage: totalPage,
    msg: 'OK'
  }
})

//添加数据
Mock.mock(RegExp(`${import.meta.env.VITE_APP_REQUSET_URL}/api/system/add.*`), 'post', () => {
  return {
    code: 200,
    data: newList.data,
    msg: 'OK'
  }
})

//更新数据
Mock.mock(RegExp(`${import.meta.env.VITE_APP_REQUSET_URL}/api/system/update.*`), 'post', () => {
  return {
    code: 200,
    data: newList.data,
    msg: 'OK'
  }
})

//删除数据
Mock.mock(RegExp(`${import.meta.env.VITE_APP_REQUSET_URL}/api/system/delete.*`), 'post', () => {
  return {
    code: 200,
    data: newList.data,
    msg: 'OK'
  }
})

//获取详情
Mock.mock(RegExp(`${import.meta.env.VITE_APP_REQUSET_URL}/api/system/.*`), 'get', () => {
  return {
    code: 200,
    data: newList.data,
    msg: 'OK'
  }
})
